<?php

namespace Api\Model;

use Think\Model;

class PublicAccountModel extends Model {

    protected $tableName = 'tb_mp';
    protected $_validate = array();
    protected $_auto = array();

    /**
     * 创建添加数据
     * @param array $data
     * @return boolean
     */
    public function createAdd($data) {
        $this->_validate = array(
            array('mp_type', 'require', 'mp_type(公众号类型 1:订阅号 2:服务号)不能为空', self::MUST_VALIDATE),
            array('mp_type', array(1, 2), 'mp_type(公众号类型 1:订阅号 2:服务号)不正确', self::MUST_VALIDATE, 'in'),
            array('nickname', 'require', 'nickname(公众号名称)不能为空', self::MUST_VALIDATE),
            array('nickname', '', 'nickname(公众号名称)已存在', self::MUST_VALIDATE, 'unique'),
            array('username', 'require', 'username(公众号帐号)不能为空', self::MUST_VALIDATE),
            array('username', '', 'username(公众号帐号)已存在', self::MUST_VALIDATE, 'unique'),
            array('password', 'require', 'password(公众号密码)不能为空', self::MUST_VALIDATE),
            array('phone', 'require', 'phone(公众号手机号)不能为空', self::MUST_VALIDATE),
            array('email', 'require', 'email(公众号邮箱)不能为空', self::MUST_VALIDATE),
            array('icon_url', 'require', 'icon_url(公众号头像)不能为空', self::MUST_VALIDATE),
            array('qrcode_url', 'require', 'qrcode_url(公众号二维码地址)不能为空', self::MUST_VALIDATE),
            array('introduction', 'require', 'introduction(公众号介绍)不能为空', self::MUST_VALIDATE),
        );
        $this->_auto = array(
            array('province_id', 0),
            array('city_id', 0),
            array('create_date', time()),
            array('create_by', 0),
            array('update_date', time()),
            array('update_by', 0),
            array('status', 0),
        );

        if (!$this->create($data)) {
            return false;
        }
        return true;
    }

    /**
     * 创建修改数据
     * @param array $data
     * @return boolean
     */
    public function createModify($data) {
        $this->_validate = array(
            array('mp_id', 'require', 'mp_id(公众号ID)不能为空', self::MUST_VALIDATE),
            array('mp_type', 'require', 'mp_type(公众号类型 1:订阅号 2:服务号)不能为空', self::EXISTS_VALIDATE),
            array('mp_type', array(1, 2), 'mp_type(公众号类型 1:订阅号 2:服务号)不正确', self::EXISTS_VALIDATE, 'in'),
            array('nickname', 'require', 'nickname(公众号名称)不能为空', self::EXISTS_VALIDATE),
            array('nickname', '', 'nickname(公众号名称)已存在', self::EXISTS_VALIDATE, 'unique'),
            array('username', 'require', 'username(公众号帐号)不能为空', self::EXISTS_VALIDATE),
            array('username', '', 'username(公众号帐号)已存在', self::EXISTS_VALIDATE, 'unique'),
            array('password', 'require', 'password(公众号密码)不能为空', self::EXISTS_VALIDATE),
            array('phone', 'require', 'phone(公众号手机号)不能为空', self::EXISTS_VALIDATE),
            array('email', 'require', 'email(公众号邮箱)不能为空', self::EXISTS_VALIDATE),
            array('icon_url', 'require', 'icon_url(公众号头像)不能为空', self::EXISTS_VALIDATE),
            array('qrcode_url', 'require', 'qrcode_url(公众号二维码地址)不能为空', self::EXISTS_VALIDATE),
            array('introduction', 'require', 'introduction(公众号介绍)不能为空', self::EXISTS_VALIDATE),
        );
        $this->_auto = array(
            array('province_id', 0),
            array('city_id', 0),
            array('create_by', 0),
            array('update_date', time()),
            array('update_by', 0),
            array('status', 0),
        );
        if (!$this->create($data)) {
            return false;
        }
        return true;
    }

    /**
     * 根据条件获取公众号列表
     * 
     * @param array data
     */
    public function conditionSelect($data) {
        $page_num = $data['page_num'];
        $page_size = $data['page_size'];
        $nickname_keyword = $data['nickname_keyword'];
        $create_start_time = $data['create_start_time'];
        $create_end_time = $data['create_end_time'];
        $update_start_time = $data['update_start_time'];
        $update_end_time = $data['update_end_time'];
        $map = array();
        //公众号名称查询条件
        if (!empty($nickname_keyword)) {
            $map['nickname'] = array('like', "%{$nickname_keyword}%");
        }
        //创建时间查询条件
        if (is_numeric($create_start_time) && $create_start_time > 0 && is_numeric($create_end_time) && $create_end_time > 0) {
            $map['create_date'] = array(
                array('gt', $create_start_time),
                array('lt', $create_end_time),
            );
        }
        //更新时间查询条件
        if (is_numeric($update_start_time) && $update_start_time > 0 && is_numeric($update_end_time) && $update_end_time > 0) {
            $map['update_date'] = array(
                array('gt', $update_start_time),
                array('lt', $update_end_time),
            );
        }
        //过滤已删除
        $map['status'] = 0;
        //获取总数
        $count = $this->where($map)->page($page_num, $page_size)->count();
        //获取列表
        $list = $this->where($map)->page($page_num, $page_size)->select();
        $return = array(
            'count' => $count,
            'list' => $list,
        );
        return $return;
    }

}
